In general, a computer system enables a human user to perform data storage, data processing and data exchange with the external environment. There are various computer systems, including mainframe computers, minicomputers, and personal computers.
All computer systems, regardless of their type, perform certain basic functions. These basic functions are performed by a variety of hardware and software components that make up a computer system. A typical computer includes a central processing unit (CPU) and various peripherals, including magnetic peripherals, such as disk memories or tape drives, and other peripherals called input-output devices for exchanging data with the environment, including printers and terminals, such as the Minitel, for example.
A CPU consists of a central processor and a local main memory connected to the processor, as well as an input-output processor to control exchange of data between the main memory and the various peripherals.
Transfer of data between the CPU and the peripherals is implemented by a coupler connected to the output bus of the CPU and to the peripheral to be used.
Data processing and other tasks handled by computers include setting up payroll, looking up numbers in a telephone directory, reserving seats on an airplane or train, etc. Each type of processing and each task to be performed defines an application. The computer uses an application program to perform the associated application. The central processor in the computer CPU executes a set of instructions derived from an application program. These instructions and the data they manipulate are typically stored in the main memory. The processor executes each of the instructions in the program.
To understand better what an application is, let us consider, for example, airline seat reservations. Each time a passenger comes to the window, the airline employee or travel agent uses a terminal with a keyboard and screen connected to a computer. He asks the computer to suggest a given flight, and a seat for the passenger on the flight. When the computer presents an acceptable selection via the screen at the terminal, the employee makes the reservation. The flight schedules of different airlines, as well as lists of available seats and occupied seats for each flight, are generally stored in a secondary computer memory, a disk memory for example. The program that checks and updates the passenger lists in the computer is called a user program or application program, as mentioned above. The list of flights and their respective characteristics, and the associated seating lists are stored in a portion of the disk memory, referred to as a file.
Working at a terminal, one can perform many different applications: searching for a phone number in a telephone directory, booking seats at a performance, consulting a database, etc. In addition, the terminal may be capable of performing only one or a limited number of applications; the application may differ from one terminal to another. Performing airline seat reservations or looking up telephone numbers can be considered administrative applications. There are also scientific and industrial applications, however, for automatically monitoring production processes.
There are one or more couplers between a computer CPU and its various terminals for transmitting data therebetween. During transmission, the consistency of the data and the formats of the various screens of transmitted information is checked. In other words, a check is made to determine whether the formats of these screens match the transmission mode for each terminal. As is known, a screen of information is the elementary block of information transmitted by a terminal, regardless of its structure. A screen of information includes a start and an end message, synchronization signals for the clock, the address of the sending terminal, the volume of data, the volume of useful data, etc. The coupler then verifies whether each screen of information is transmitted in the appropriate format; the format must conform to the transmission protocol controlling the dialogue between the terminal and the CPU. The protocol defines the rules for access to each terminal. The coupler must also transmit this information without error and must regenerate signals whose amplitude is weakened during transmission between each terminal and the CPU.
With reference to FIG. 1, two main types of couplers are in current use, for example, in the DPS 6 computer made by Societe Bull S.A. The first type of coupler CO consists of a mother-board CM.sub.1 and a daughter-board CF.sub.1. The mother-board is connected to the CPU of the computer ORD through a bus BUS.sub.1 in which the data bits are transmitted in parallel. The CPU stores an application program to be executed in conjunction with a peripheral OPER (not shown).
FIG. 1 shows the interface between the application program stored in the central memory of the CPU and the coupler CO.sub.1, namely DR.sub.1, which is actually a software module called a driver, and is described in the technical manuals for the DPS 6 computer.
The mother-board CM.sub.1 is likewise connected through the parallel bus BUS.sub.1 to other couplers, with a structure identical to CO.sub.1, namely CO.sub.1, CO.sub.i+1, etc. The mother-board CM.sub.1 includes an interface I.sub.1, and the daughter-board CF.sub.1 includes an interface I.sub.2 that, when joined together, enable signals to travel between the mother-board CM.sub.1 and the daughter-board CF.sub.1. Daughter-board CF.sub.1 likewise includes an interface I.sub.3 that allows signals to travel between the daughter-board CF.sub.1 and an associated peripheral OPER through a parallel bus LB.sub.1. The parallel bus LB.sub.1 can transmit eight bits in parallel, for example. When joined together, interfaces I.sub.1 and I.sub.2 are operative to electrically couple conductors on the mother-board with conductors on the daughter-board.
The interface I.sub.3 can be, for example, an optoelectronic coupler of the HP2602 HCL type with a 10 MHz passband filter. This type of optoelectronic coupler communicates signals between the peripheral OPER and the various elements of the computer, while electrically isolating the peripheral OPER from the various elements that make up the computer.
The mother-board CM.sub.1 is a non-intelligent board sold under the commercial designation GPI (General Purpose Interface) with the DPS 6 computer. It consists mainly of a sequencer SEQ for direct memory access DMA, this direct access procedure being well known to one skilled in the art, and described in the technical user manuals for the DPS 6 computer.
The daughter-board CF.sub.1 includes a microprocessor MP.sub.1, for example the Motorola 68010. In this configuration, the microprogram includes a set of microinstructions that transfer information to and from a peripheral OPER and the CPU, the transfer occurring in a consistent fashion and without any distortion of the various signals representing the bits of information. The microprogram is stored in the local memory of the microprocessor MP.sub.1, and will herein be referred to as an application microprogram. In addition, in the event of any interruption of data exchange between the CPU and the peripheral OPER, the interruption is managed by the program in the CPU. An interruption can arise, for example, when the CPU must manage several application programs in conjunction with the various peripherals simultaneously. An application program may be interrupted at any time to permit processing required by another application program.
In the first type of coupler, for each new application, both the daughter-board CF.sub.1 and the program stored in the CPU must be changed. This approach is insufficiently flexible and relatively complicated.
The second type of coupler CO.sub.2, is shown in FIG. 2 and bears the commercial designation MDC (Multi Device Controller) for the DPS 6 computer, as mentioned above. The CPU in FIG. 2 is similar to that shown in FIG. 1, with a software interface DR.sub.2, similar to interface DR.sub.1, and a coupler CO.sub.2, including a mother-board CM.sub.2 and a daughter-board CF.sub.2. The mother-board CM.sub.2 is connected to the CPU through a parallel bus BUS.sub.2 analogous to the BUS.sub.1. The CPU is connected through the bus BUS.sub.2 to other couplers, with structures analogous to the coupler CO.sub.2, namely CO.sub.j, CO.sub.j+1, etc.
The mother-board CM.sub.2 includes an interface I.sub.4 similar to interface I of mother-board CM.sub.1 in FIG. 1, while the daughter-board CF.sub.2 comprises two interfaces I.sub.5 and I.sub.6 analogous to interfaces I.sub.2 and I.sub.3 of the daughter-board CF.sub.1 in FIG. 1. The role of the interfaces I.sub.4, I.sub.5, and I.sub.6 is analogous to the role of the interfaces I.sub.1, I.sub.2, and I.sub.3 shown in FIG. 1.
The daughter-board CF.sub.2 is connected to peripheral OPER through parallel bus LB.sub.2 similar to the bus LB.sub.1. The daughter-board CF.sub.2 is a non-intelligent board and stores only connecting circuits and interface tools, for example, of the HP2602 HCL type mentioned above. The mother-board CM.sub.2 includes a microprocessor MP.sub.2 and a read-only memory (ROM) of the PROM type, namely PROM.sub.2 ; microprocessor MP.sub.2 and ROM PROM.sub.2 are connected to the same internal bus BI of the microprocessor MP.sub.2, itself connected to the bus BUS.sub.2
For a given application, the microprogram for the application that transfers data between peripheral OPER and the CPU resides entirely on the mother-board, inside the ROM PROM.sub.2. It is activated by the microprocessor MP.sub.2.
A disadvantage of this second type of coupler CO.sub.2 is that each new application requires a new mother-board, since the application microprogram is stored in the non-erasable PROM memory. Moreover, since the microprogram is stored in executable form in a PROM-type memory, where access is relatively slow (150 to 200 nanoseconds), the microprocessor MP.sub.2 is delayed because of the relatively long access time of the PROM memory (microprocessor access times are on the order of 100 nanoseconds). Consequently, the available power of the microprocessor is diminished.
In conclusion, the major disadvantages of the two existing types of couplers are:
limitation of the available power of the mother-boards by the microprogram stored in, and executable from, the PROM memory; and
the need to change the mother-boards or the mother-board plus daughter-board assembly for each new application.